from bs4 import BeautifulSoup

soup = BeautifulSoup(open("../素材/豆瓣.html",'r', encoding="utf-8"), "lxml")

print(type(soup))

# 获取所有div标签
divs = soup.div
print(divs)
print(soup.find("div")) # 上面是简写

# 获取所有img标签
print(soup.img)

#获取标签有哪些属性
print(soup.div.attrs)

# find添加条件
print(soup.find("div",attrs={'class': 'detail-frame'}))

#通过属性关键字进行查找  多个class 只用一个空格隔开
print(soup.find("div",class_="detail-frame"))


# find 和 .的组合使用
print(soup.find('a', class_="cover").img['src'])

# 写入到文件中需要转换位字符串
with open('01_初始bs4.html','w', encoding="utf-8") as f:
    f.write(soup.find('a', class_="cover").img['src'])

# 获取文本内容 字符串类型
print(soup.find('h2', class_="fleft").text)
print(soup.find('h2', class_="fleft").get_text()) # 上面是简写
print(soup.find('h2', class_="fleft").string) # 还有嵌套则位None
print(soup.find('h2', class_="fleft").strings) # 生成器 获取所有的文本内容
print(soup.find('h2', class_="fleft").stripped_strings) # 生成器 获取所有的文本内容 去掉空格


print(soup.find('div', class_="detail-frame").h2.text)
print(soup.find('div', class_="detail-frame").h2.get_text())
print(soup.find('div', class_="article").get_text().replace('\n','').replace('\t','').replace('\r','').replace(' ',''))


# 格式化标准输出
print(soup.find('p', class_="detail").prettify())

# 查找所有 以列表的形式返回
print(soup.find_all('p', class_="detail"))
print(soup.find_all('img')[:2])

print(soup.find_all(['a','li'])) # 获取超链接和li标签

# select 选择器
print(soup.select('a > img'))
img = soup.select('a > img')
for item in img:
    print(item.get('src'))

